package com.opal.system.service;

import com.opal.modules.costReportForm.entity.AcMail;
import com.opal.modules.costReportForm.entity.ActivitiUser;
import com.opal.modules.costReportForm.entity.CostReport;
import com.opal.system.entity.table.activiti.ActHiProcinst;
import com.opal.system.entity.table.activiti.ActHiTaskinst;

public interface ActivitiService {

    /**
     * 完成任务
     * @param taskId
     * @return
     */
    Object completeTheTaskDirectlyService(String taskId);

    /**
     * 结束流程
     * @param procInstId
     * @return
     */
    Object deleteProcessService(String procInstId,String cause);

    /**
     *  根据成本报告条件和
     * @param costReport    成本报告对象
     * @param isNull  sql 语句    is not null 和 is null 刷选任务的完成
     * @return
     */
    Object queryActHiTaskinstByCostReportService(CostReport costReport,String isNull);

    /**
     * 查询activiti实例表
     * @param actHiProcinst
     * @return
     */
    Object queryActHiProcinstService(ActHiProcinst actHiProcinst);

    /**
     * 查询历史任务表
     * @param actHiTaskinst
     * @return
     */
    Object queryActHiTaskinstService(ActHiTaskinst actHiTaskinst);

    /**
     * 查询流程实例变量
     * @param procInstId
     * @return
     */
    Object selectVariableService(String procInstId);

    /**
     * 根据流程实例id修改流程实例变量
     * @param procInstId        流程实例id
     * @param acMail            用户邮箱
     * @param activitiUser       用户
     * @return
     */
    Object updateVariableService(String procInstId, AcMail acMail, ActivitiUser activitiUser,Double grossMarginRate,String saleType);

    /**
     * 获取所有的用户
     * @return
     */
    Object getUserService();
}
